Skip to main content

04 提升性能的方面

程序的 CPU 执行时间 = 指令数 ×CPI×Clock Cycle Time

指令数、CPI 、 CPU 主频

CPU

多放晶体管,提升 CPU 的时钟频率

功耗

  • 同样的面积,多放一些晶体管,增加密度(提升制程);
  • 让晶体管“打开”和“关闭”得更快(提升主频)。

功耗 ~= 1/2 × 负载电容 × 电压的平方 × 开关频率 × 晶体管数量

以上两者都会增加功耗,带来耗电和散热的问题。

功耗增加太多,导致 CPU 散热跟不上,需要降低电压。

并行优化

多核 CPU,通过提升“吞吐率”提升性能

通过并行提高性能需要满足的条件

  1. 需要进行的计算,本身可以分解成几个可以并行的任务
  2. 需要能够分解好问题,并确保几个人的结果能够汇总到一起
  3. 在“汇总”这个阶段,是没有办法并行进行的,还是得顺序执行,一步一步来

阿姆达尔定律

优化后的执行时间 = 受优化影响的执行时间 / 加速倍数 + 不受影响的执行时间

原则性性能提升方法

加速大概率事件

深度学习 99% 都是向量和矩阵计算,用 GPU 替代 CPU

通过流水线提高性能

把 CPU 指令执行的过程进行拆分,细化运行

通过预测提高性能

通过预先猜测下一步该干什么,而不是等上一步运行的结果,提前进行运算